El uso de bases de datos está ampliamente extendido, sin embargo, hay una falta de herramientas de depuración y prueba que asistan su desarrollo. Comprobar la corrección de una consulta SQL es difícil usando bases de datos reales, ya sea porque el número de filas en bases de datos pobladas es normalmente muy elevado o por la carencia de datos en las primeras fases del desarrollo.


Para solventar este problema hemos desarrollado una herramienta que, dada la definición de una base de datos SQL y una vista objetivo, encuentra una instancia de la base de datos para la cual la consulta de la vista no devuelve una respuesta vacía, lo que se considera un caso de prueba positivo. Aplicando recientes resultados de investigación, transformamos la búsqueda de esta instancia a un problema de resolución de restricciones. Ampliamos también el ámbito de aplicación de esta técnica presentando un nuevo enfoque para tratar condiciones existenciales anidadas.


Dividimos el proceso de obtención de casos de prueba en tres fases. Primero se analiza el código SQL que define la base de datos a estudiar. Posteriormente, dado el nombre de la vista objetivo, se generan las fórmulas que representan las condiciones que una instancia debe cumplir para ser un caso de prueba de dicha vista. Finalmente se traducen estas fórmulas a un lenguaje de programación con restricciones específico, cuyas soluciones constituyen los casos de prueba buscados.


El trabajo presenta un prototipo novedoso en el campo de las bases de datos y muestra una forma de suplir la carencia actual de herramientas de prueba para su desarrollo.

\section*{Palabras clave} Restricciones, SQL, Caso de Prueba, Prueba, Bases de Datos